iT邦幫忙

2021 iThome 鐵人賽

DAY 13
0
自我挑戰組

菜雞的JAVA日記系列 第 13

DAY13-JAVA的類別(7)-內部類別

  • 分享至 

  • xImage
  •  

內部類別
如果在A類別裡面再定義一個B類別,這種結構稱為巢狀類別(nested classes),此時的類別A稱為外部類別(outer class),而類別B則稱為內部類別(inner class)。

內部類別也可以分為public和private,當宣告成public和private時,其存取的限制與資料成員或函數成員相同。

修飾子 class 外部類別的名稱{
//外部類別的成員
修飾子 class 內部類別名稱{
//內部類別的成員
}
}

當程式中有使用到內部類別時,JAVA會使用「$」區分該內部類別是屬於哪一個外部類別。

外部類別名稱 $ 內部類別名稱

在外部類別的建構元裡建立內部類別的物件
(1)在外部類別的建構元裡建立內部類別的物件
(2)在main()裡建立一個外部類別的物件

匿名內部類別
匿名內部類別(anonymous inner class)可以方便利用內部類別建立不具名稱的物件,並利用他存取類別裡的成員。

(
new 類別名稱(引數){
傳回值型態 函數名稱(引數1,引數2,...,引數n){
函數敘述;
}
}
).函數名稱(引數1,引數2,...,引數n);

建立匿名內部類別的用意,主要是直接用new建立類別,並捕捉內部類別裡沒有定義到的函數,且有效的簡化程式碼。

當程式中有使用匿名內部類別時,JAVA會用"$"再加上數字編號,用以區分該內部類別是屬於哪一個外部類別。

外部類別名稱 $ 數字編號

菜鳥工程師的體脂肪

菜鳥工程師也有分享食記,歡迎大家追蹤喔~~
https://instagram.com/engineer_bodyfat?utm_medium=copy_link

明天就可以進入繼承啦啦啦啦啦啦~~~
See you tomorrow:))


上一篇
DAY12-JAVA的類別(6)-變數和函數
下一篇
DAY14-JAVA的繼承(1)
系列文
菜雞的JAVA日記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言